package com.profgj.profgj.controller;

import com.profgj.profgj.entity.*;
import com.profgj.profgj.entity.System;
import com.profgj.profgj.service.*;
import com.profgj.profgj.vo.ProductMonthEnergyconsumptionVo;
import com.profgj.profgj.vo.ProjectBaseInfoVo;
import com.profgj.profgj.vo.ProjectImportantDocumentVo;
import io.swagger.annotations.*;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import java.util.List;

/**
 *  子页面视图跳转
 */
@Controller
@RequestMapping("/page")
@Api(tags = {"子页面跳转控制器"},description = "子页面跳转控制器")
public class SubPageController {

    /**
     * 企业服务对象
     */
    @Resource
    private EnterpriseService enterpriseService;

    /**
     * 项目要件服务对象
     */
    @Resource
    private ProjectImportantDocumentService projectImportantDocumentService;

    /**
     * 产品月能耗服务对象
     */
    @Resource
    private ProductMonthEnergyconsumptionService productMonthEnergyconsumptionService;

    /**
     * 产品对象
     */
    @Resource
    private ProductService productService;

    /**
     * 项目基本情况服务对象
     */
    @Resource
    private ProjectBaseInfoService projectBaseInfoService;

    /**
     * 用户服务对象
     */
    @Resource
    private UserService userService;

    /**
     * 计量单位服务对象
     */
    @Resource
    private UnitService unitService;

    /**
     * 票据服务对象
     */
    @Resource
    private BillService billService;

    /**
     * 政策文件服务对象
     */
    @Resource
    private PublishPolicyFileService publishPolicyFileService;

    /**
     * 用户通知服务对象
     */
    @Resource
    private UserNotifyService userNotifyService;

    /**
     * 系统信息服务对象
     */
    @Resource
    private SystemService systemService;


    /**
     * 跳转添加企业页面
     * @return
     */
    @GetMapping("/EnterpriseAdd")
    @ApiOperation(value = "添加企业")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String EnterpriseAdd(HttpSession session) {

        return "page/EnterpriseAdd";
    }

    /**
     * 跳转企业修改页面
     * @return
     */
    @GetMapping("/EnterpriseChange")
    @ApiOperation(value = "企业修改页面")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String PageEnterpriseChange() {

        return "page/EnterpriseChange";
    }

    /**
     * 获取数据跳转企业修改页面
     * @return
     */
    @GetMapping("/EnterpriseChange/{id}")
    @ApiOperation(value = "企业修改页面")
    @ApiImplicitParam(name = "id", value = "企业id",required = true, dataType = "Long", paramType = "Long")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String EnterpriseChange(@PathVariable("id") Long id,@ApiIgnore Model model) {

        Enterprise enterprise = enterpriseService.queryById(id);
        String licenseImg = enterprise.getLicenseImg();
        if (licenseImg != null && !licenseImg.isEmpty()){
            String[] split = licenseImg.split("/static/");
            enterprise.setLicenseImg(split[1]);
        }
        model.addAttribute("data",enterprise);

        return "page/EnterpriseChange";
    }

    /**
     * 企业信息详情页
     * @param id
     * @param model
     * @return
     */
    @GetMapping("/EnterpriseDetail/{id}")
    @ApiOperation(value = "企业信息详情页")
    @ApiImplicitParam(name = "id", value = "企业id",required = true, dataType = "Long", paramType = "Long")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String EnterpriseInfo(@PathVariable("id") Long id, Model model){

        Enterprise enterprise = enterpriseService.queryById(id);
        if(enterprise.getrId() != null){
            Enterprise parent = enterpriseService.queryById(enterprise.getrId());
            model.addAttribute("parent",parent);
        }
        String licenseImg = enterprise.getLicenseImg();
        if (licenseImg != null && !licenseImg.isEmpty()){
            String[] split = licenseImg.split("/static/");
            enterprise.setLicenseImg(split[1]);
        }
        User user = userService.queryById(enterprise.getEnUserId());
        model.addAttribute("user",user);
        model.addAttribute("data",enterprise);

        return "page/EnterpriseDetail";
    }

    /**
     * 跳转企业信息页面
     * @return
     */
    @GetMapping("/EnterpriseInfo")
    @ApiOperation(value = "跳转企业信息页面")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String EnterpriseInfo() {
        return "page/EnterpriseInfo";
    }

    /**
     * 跳转级联添加页面
     * @return
     */
    @GetMapping("/jltj")
    @ApiOperation(value = "跳转级联添加页面")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String jltj() {
        return "page/jltj";
    }

    /**
     * 跳转政策文件添加页
     * @return
     */
    @GetMapping("/PolicyFileAdd")
    @ApiOperation(value = "跳转政策文件添加页")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String PolicyFileAdd() {
        return "page/PolicyFileAdd";
    }



    /**
     * 跳转政策文件发布页
     * @return
     */
    @GetMapping("/PolicyFileInfo")
    @ApiOperation(value = "跳转政策文件发布页")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String PolicyFileInfo() {
        return "page/PolicyFileInfo";
    }


    @GetMapping("/PolicyFileDetail/{id}")
    @ApiOperation(value = "跳转政策文件详情")
    @ApiImplicitParam(name = "id", value = "政策文件id",required = true, dataType = "Long", paramType = "Long")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String PolicyFileDetail(@PathVariable("id") Long id,@ApiIgnore Model model){

        PublishPolicyFile publishPolicyFile = publishPolicyFileService.queryById(id);
        if (publishPolicyFile.getFilePath() != null){
            publishPolicyFile.setFilePath(publishPolicyFile.getFilePath().split("static/")[1]);
        }
        model.addAttribute("data",publishPolicyFile);

        return "page/PolicyFileDetail";
    }

    /**
     * 跳转政策文件发布页
     * @return
     */
    @GetMapping("/PolicyFileInfo2")
    @ApiOperation(value = "跳转政策文件发布页")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String PolicyFileInfo2() {
        return "page/PolicyFileInfo2";
    }

    /**
     * 跳转产品添加页
     * @return
     */
    @GetMapping("/ProductAdd")
    @ApiOperation(value = "跳转产品添加页")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String ProductAdd() {
        return "page/ProductAdd";
    }



    /**
     * 跳转产品修改页
     * @return
     */
    @GetMapping("/ProductChange/{id}")
    @ApiOperation(value = "跳转级联添加页面")
    @ApiImplicitParam(name = "id", value = "产品id",required = true, dataType = "Long", paramType = "Long")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String ProductChange(@PathVariable("id") Long id, Model model) {

        ProductMonthEnergyconsumptionVo productMonthEnergyconsumption = productMonthEnergyconsumptionService.queryById(id);
        model.addAttribute("data",productMonthEnergyconsumption);

        return "page/ProductChange";
    }

    /**
     * 跳转产品信息页
     * @return
     */
    @GetMapping("/ProductInfo")
    @ApiOperation(value = "跳转产品信息页")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String ProductInfo() {
        return "page/ProductInfo";
    }

    /**
     * 跳转项目添加页
     * @return
     */
    @GetMapping("/ProjectAdd")
    @ApiOperation(value = "跳转项目添加页")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String ProjectAdd() {
        return "page/ProjectAdd";
    }

    /**
     * 跳转项目修改页
     * @return
     */
    @GetMapping("/ProjectChange/{id}")
    @ApiOperation(value = "跳转项目修改页")
    @ApiImplicitParam(name = "id", value = "项目基本情况id",required = true, dataType = "Long", paramType = "Long")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String ProjectChange(@PathVariable("id") Long id, Model model) {

        // id查询项目基本情况信息
        ProjectBaseInfoVo projectBaseInfoVo = projectBaseInfoService.queryById(id);
        // 项目基本情况id查询票据list
        List<Bill> billList = billService.queryByProjectBaseInfoId(projectBaseInfoVo.getId());
        // 将数据添加到model中
        model.addAttribute("data",projectBaseInfoVo);
        model.addAttribute("bills",billList);

        return "page/ProjectChange";
    }


    /**
     * 跳转项目基本情况详细页面
     * @return
     */
    @GetMapping("/ProjectDetail/{id}")
    @ApiOperation(value = "跳转项目基本情况详细页面")
    @ApiImplicitParam(name = "id", value = "项目基本情况id",required = true, dataType = "Long", paramType = "Long")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String projectInfo(@PathVariable("id")Long id,Model model){

        // id查询项目基本情况信息
        ProjectBaseInfoVo projectBaseInfoVo = projectBaseInfoService.queryById(id);
        // 项目基本情况id查询票据list
        List<Bill> billList = billService.queryByProjectBaseInfoId(projectBaseInfoVo.getId());
        // 数据添加到model中
        model.addAttribute("data",projectBaseInfoVo);
        model.addAttribute("bills",billList);
        // 关联的用户id查询用户
        User user = userService.queryById(projectBaseInfoVo.getEnUserId());
        // 将用户信息添加到model中
        model.addAttribute("user",user);

        return "page/ProjectDetail";
    }


    /**
     * 跳转项目要件添加页
     * @return
     */
    @GetMapping("/ProjectDocmentAdd")
    @ApiOperation(value = "跳转项目要件添加页")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String ProjectDocmentAdd() {
        return "page/ProjectDocmentAdd";
    }

    /**
     * 跳转项目要件修改页
     * @return
     */
    @GetMapping("/ProjectDocmentChange")
    @ApiOperation(value = "跳转项目要件修改页")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String ProjectDocmentChange() {
        return "page/ProjectDocmentChange";
    }

    /**
     * 跳转项目要件修改页
     * @return
     */
    @GetMapping("/ProjectDocmentChange/{id}")
    @ApiOperation(value = "跳转项目要件修改页")
    @ApiImplicitParam(name = "id", value = "项目要件id",required = true, dataType = "Long", paramType = "Long")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String ProjectDocmentChange(@PathVariable("id") Long id, Model model) {

        // id查询项目要件
        ProjectImportantDocumentVo projectImportantDocumentVo = projectImportantDocumentService.queryById(id);
        // 添加model中
        model.addAttribute("data",projectImportantDocumentVo);

        return "page/ProjectDocmentChange";
    }

    /**
     * 项目要件信息页
     * @param id    项目要件id
     * @param model 数据模型对象
     * @return
     */
    @GetMapping("/ProjectDocmentDetail/{id}")@ApiOperation(value = "跳转项目要件修改页")
    @ApiImplicitParam(name = "id", value = "项目要件id",required = true, dataType = "Long", paramType = "Long")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })

    public String ProjectDocumentInfo(@PathVariable("id") Long id,@ApiIgnore Model model){

        // id 查询项目要件
        ProjectImportantDocumentVo projectImportantDocumentVo = projectImportantDocumentService.queryById(id);
        // 添加到model中
        model.addAttribute("data",projectImportantDocumentVo);
        // 关联的用户id查询用户信息
        User user = userService.queryById(projectImportantDocumentVo.getEnUserId());
        // 添加到model中
        model.addAttribute("user",user);

        return "page/ProjectDocmentDetail";
    }

    /**
     * 跳转项目要件信息页
     * @return
     */
    @GetMapping("/ProjectDocmentInfo")
    @ApiOperation(value = "跳转项目要件信息页")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String ProjectDocmentInfo() {
        return "page/ProjectDocmentInfo";
    }

    /**
     * 跳转项目信息页
     * @return
     */
    @GetMapping("/ProjectInfo")
    @ApiOperation(value = "跳转项目信息页")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String ProjectInfo() {
        return "page/ProjectInfo";
    }

    /**
     * 跳转项目总能耗页
     * @return
     */
    @GetMapping("/ProjectTotalEn")
    @ApiOperation(value = "跳转项目总能耗页")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String ProjectTotalEn() {
        return "page/ProjectTotalEn";
    }


    /**
     * 跳转定时短信任务页
     * @return
     */
    @GetMapping("/ScheduledTasksMessage")
    @ApiOperation(value = "跳转定时短信任务页")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String ScheduledTasksMessage() {
        return "page/ScheduledTasksMessage";
    }

    /**
     * 跳转计量单位添加页
     * @return
     */
    @GetMapping("/Unit_Add")
    @ApiOperation(value = "跳转计量单位添加页")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String UnitAdd() {
        return "page/Unit_Add";
    }




    /**
     * 跳转计量单位修改页
     * @return
     */
    @GetMapping("/Unit_Change/{id}")
    @ApiOperation(value = "跳转计量单位修改页")
    @ApiImplicitParam(name = "id", value = "计量单位id",required = true, dataType = "Integer", paramType = "Integer")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String UnitChange(@PathVariable("id") Integer id, Model model) {

        // id查询计量单位信息
        Unit unit = unitService.queryById(id);
        // 添加到model中
        model.addAttribute("data",unit);

        return "page/Unit_Change";
    }

    /**
     * 跳转计量单位信息页
     * @return
     */
    @GetMapping("/Unit_Info")
    @ApiOperation(value = "跳转计量单位信息页")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String UnitInfo() {
        return "page/Unit_Info";
    }

    /**
     * 管理端跳转用户添加页
     * @return
     */
    @GetMapping("/UserAdd")
    @ApiOperation(value = "跳转用户添加页")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String UserAdd() {
        return "page/UserAdd";
    }

    /**
     * 管理端跳转用户修改页
     * @return
     */
    @GetMapping("/UserChange")
    @ApiOperation(value = "跳转用户修改页")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String UserChange() {
        return "page/UserChange";
    }


    /**
     * 企业用户跳转用户修改页
     * @return
     */
    @GetMapping("/UserChange2")
    @ApiOperation(value = "跳转用户修改页")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String UserChange2() {
        return "page/UserChange2";
    }
    /**
     * 跳转用户修改页
     * @return
     */
    @GetMapping("/UserChange/{id}")
    @ApiOperation(value = "跳转用户修改页")
    @ApiImplicitParam(name = "id", value = "用户id",required = true, dataType = "Integer", paramType = "Integer")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String UserChange(@PathVariable("id") Integer id,@ApiIgnore Model model) {

        // 用户id查询用户信息
        User user = userService.queryById(id);
        // 添加到model中
        model.addAttribute("data",user);

        return "page/UserChange";
    }


    /**
     * 跳转用户信息页
     * @return
     */
    @GetMapping("/UserInfo")
    @ApiOperation(value = "跳转用户信息页")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String UserInfo() {
        return "page/UserInfo";
    }

    /**
     * 跳转用户日志页
     * @return
     */
    @GetMapping("/UserLog")
    @ApiOperation(value = "跳转用户日志页")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String UserLog() {
        return "page/UserLog";
    }

    /**
     * 跳转年能耗添加页
     * @return
     */
    @GetMapping("/YEC_Add")
    @ApiOperation(value = "跳转年能耗添加页")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String YECAdd() {
        return "page/YEC_Add";
    }

    /**
     * 跳转年能耗修改页
     * @return
     */
    @GetMapping("/YEC_Change")
    @ApiOperation(value = "跳转年能耗修改页")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String YECChange() {
        return "page/YEC_Change";
    }

    /**
     * 跳转年能耗信息页
     * @return
     */
    @GetMapping("/YEC_Info")
    @ApiOperation(value = "跳转年能耗信息页")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
        public String YECInfo() {
        return "page/YEC_Info";
    }


    /**
     * 跳转通知提醒
     * @return
     */
    @GetMapping("/user_notify")
    @ApiOperation(value = "跳转通知提醒")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String user_notify(){

        return "page/User_notify";
    }

    /**
     * 政策文件预览
     * @param id    政策文件id
     * @param model    数据模型对象
     * @return
     */
    @GetMapping("/preview/{id}")
    @ApiOperation(value = "政策文件预览")
    @ApiImplicitParam(name = "id", value = "政策文件id",required = true, dataType = "Long", paramType = "Long")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String preview(@PathVariable("id") Long id,@ApiIgnore Model model){

        // id查询政策文件
        PublishPolicyFile publishPolicyFile = publishPolicyFileService.queryById(id);
        // 处理上传路径 将磁盘路径改为web路径
        publishPolicyFile.setFilePath(publishPolicyFile.getFilePath().split("static/")[1]);
        // 添加到model中
        model.addAttribute("data",publishPolicyFile);

        return "/page/preview";
    }


    /**
     * 跳转到系统信息修改页
     * @param id
     * @param model
     * @return
     */
    @GetMapping("/systeminfo/{id}")
    @ApiOperation(value = "跳转到系统信息修改页")
    @ApiImplicitParam(name = "id", value = "系统信息id",required = true, dataType = "Integer", paramType = "Integer")
    @ApiResponses({
            @ApiResponse(code = 200, message = "表明该请求被成功地完成,所请求的资源发送到客户端"),
            @ApiResponse(code = 401, message = "请求要求身份验证,常见于需要登录而用户未登录的情况"),
            @ApiResponse(code = 403, message = "服务器拒绝请求,常见于机密信息或复制其它登录而用户未登录的情况"),
            @ApiResponse(code = 404, message = "服务器无法取得所请求的网页,请求资源不存在"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String systeminfo(@PathVariable("id") Integer id,@ApiIgnore Model model){

        // id查询系统信息
        System system = systemService.queryById(id);
        // 添加到model中
        model.addAttribute("system",system);

        return "/page/Systeminfo";
    }
}
